import request from '@/utils/request';

/**
 * 客服相关API接口
 */
export const serviceApi = {
  /**
   * 获取客服消息历史
   * @param {Object} params - 查询参数
   * @param {number} params.pageNo - 页码
   * @param {number} params.pageSize - 每页数量
   * @returns {Promise} 消息历史列表
   */
  getMessageHistory(params = { pageNo: 1, pageSize: 20 }) {
    return request.get('/app-api/promotion/kefu-message/page', params);
  },

  /**
   * 发送客服消息
   * @param {Object} data - 消息数据
   * @param {number} data.contentType - 内容类型 (1: 文本消息, 2: 图片消息)
   * @param {string} data.content - 消息内容 (JSON字符串)
   * @returns {Promise} 发送结果
   */
  sendMessage(data) {
    return request.post('/app-api/promotion/kefu-message/send', data);
  },

  /**
   * 上传文件
   * @param {string} filePath - 文件路径
   * @param {Object} options - 上传选项
   * @returns {Promise} 上传结果
   */
  uploadFile(filePath, options = {}) {
    return new Promise((resolve, reject) => {
      uni.uploadFile({
        url: request.baseURL + '/app-api/infra/file/upload',
        filePath: filePath,
        name: 'file', // 后端接收的参数名
        header: {
          'Authorization': 'Bearer ' + uni.getStorageSync('token')
        },
        formData: options.formData || {},
        success: (uploadRes) => {
          try {
            const data = JSON.parse(uploadRes.data);
            if (data.code === 0 || data.code === 200) {
              resolve(data);
            } else {
              reject(new Error(data.msg || data.message || '上传失败'));
            }
          } catch (e) {
            reject(new Error('上传响应解析失败'));
          }
        },
        fail: (error) => {
          reject(error);
        }
      });
    });
  }
};

export default serviceApi;